ArangoDB Query Language (AQL) ব্যবহার করে গ্রাফের ডেটা পরিচালনা করা এবং বিভিন্ন গ্রাফ অপারেশন চালানো সম্ভব। ArangoDB এর গ্রাফ মডেলটি মূলত Vertex (নোড) এবং Edge (সম্পর্ক) এর মাধ্যমে তৈরি হয়। AQL ব্যবহার করে গ্রাফ traversal, shortest path, এবং আরও জটিল অপারেশন সম্পন্ন করা যায়।
Graph Traversal
গ্রাফ ট্র্যাভার্সাল হলো একটি নোড থেকে শুরু করে সংশ্লিষ্ট নোড এবং এজগুলোর উপর ভিত্তি করে ডেটা অনুসন্ধান।
উদাহরণ: সহজ ট্র্যাভার্সাল
FOR vertex, edge, path
IN 1..3 OUTBOUND "vertices/startNode"
GRAPH "myGraph"
RETURN { vertex, edge, path }
ব্যাখ্যা:
1..3: গ্রাফের ১ থেকে ৩ লেভেল গভীরতা পর্যন্ত ট্র্যাভার্স করবে।OUTBOUND: নোড থেকে বের হওয়া এজ অনুসরণ করবে।"vertices/startNode": ট্র্যাভার্সাল শুরু হবেstartNodeথেকে।GRAPH "myGraph":myGraphগ্রাফের উপর অপারেশনটি চালানো হবে।vertex,edge, এবংpath: রিটার্নের জন্য ভেরটেক্স, এজ এবং সম্পূর্ণ পাথ।
Directional Traversal
OUTBOUND ট্র্যাভার্সাল
একটি নোড থেকে শুধু বের হওয়া এজগুলো অনুসরণ করে।
FOR vertex IN 1..2 OUTBOUND "vertices/startNode" GRAPH "myGraph"
RETURN vertex
INBOUND ট্র্যাভার্সাল
একটি নোডে প্রবেশ করা এজগুলো অনুসরণ করে।
FOR vertex IN 1..2 INBOUND "vertices/startNode" GRAPH "myGraph"
RETURN vertex
ANY ট্র্যাভার্সাল
নোড থেকে প্রবেশ এবং বের হওয়া উভয় ধরনের এজ অনুসরণ করে।
FOR vertex IN 1..2 ANY "vertices/startNode" GRAPH "myGraph"
RETURN vertex
Shortest Path
নোডগুলোর মধ্যে সবচেয়ে ছোট পথ (shortest path) বের করার জন্য AQL ব্যবহার করা হয়।
উদাহরণ: Shortest Path বের করা
FOR v, e
IN OUTBOUND SHORTEST_PATH "vertices/startNode" TO "vertices/endNode"
GRAPH "myGraph"
RETURN { vertex: v, edge: e }
ব্যাখ্যা:
SHORTEST_PATH: দুই নোডের মধ্যে সবচেয়ে ছোট পথ খুঁজে বের করে।"vertices/startNode"এবং"vertices/endNode": শুরু এবং শেষ নোড।OUTBOUND: এজের দিক নির্দেশনা।
Graph Filtering
ট্র্যাভার্সালের সময় শর্ত প্রয়োগ করে নির্দিষ্ট ডেটা অনুসন্ধান করা।
উদাহরণ: ফিল্টার সহ ট্র্যাভার্সাল
FOR vertex, edge
IN 1..3 OUTBOUND "vertices/startNode" GRAPH "myGraph"
FILTER edge.type == "follows"
RETURN vertex
ব্যাখ্যা:
FILTER edge.type == "follows": শুধুমাত্রtypeফিল্ডের মান"follows"হলে ডেটা রিটার্ন করবে।
Edge Collection থেকে ডেটা অনুসন্ধান
গ্রাফের এজ সংগ্রহ থেকে সরাসরি ডেটা রিটার্ন করতে পারেন।
উদাহরণ: এজ ফিল্টার করা
FOR edge IN edges
FILTER edge.weight > 10
RETURN edge
ব্যাখ্যা:
- শুধুমাত্র যেসব এজের
weight> 10, সেগুলো রিটার্ন করবে।
Graph Aggregation
গ্রাফ ডেটার উপর নির্দিষ্ট সংখ্যামূলক অ্যানালাইসিস করা।
উদাহরণ: গ্রাফে মোট নোড গণনা
FOR vertex IN vertices
COLLECT WITH COUNT INTO totalVertices
RETURN totalVertices
Traversal with Path Details
ট্র্যাভার্সাল পাথ সহ বিস্তারিত ফলাফল পেতে পারেন।
উদাহরণ: পাথ সহ ট্র্যাভার্সাল
FOR vertex, edge, path
IN 1..3 OUTBOUND "vertices/startNode" GRAPH "myGraph"
RETURN path
ব্যাখ্যা:
path: ট্র্যাভার্সাল পাথের বিস্তারিত প্রদান করবে।
Complex Graph Queries
গ্রাফের একাধিক নোড এবং এজের মধ্যে জটিল সম্পর্ক নির্ণয় করতে সাবকোয়েরি ব্যবহার করা যায়।
উদাহরণ: Related Nodes ফিল্টার করা
FOR v, e, p
IN 1..3 OUTBOUND "vertices/startNode" GRAPH "myGraph"
FILTER v.age > 30
RETURN { name: v.name, path: p }
সারাংশ
AQL দিয়ে গ্রাফ অপারেশন ArangoDB-কে জটিল সম্পর্ক বিশ্লেষণের জন্য একটি শক্তিশালী টুল তৈরি করে। Traversal, Shortest Path, এবং Filtering এর মতো বৈশিষ্ট্যগুলো বড় গ্রাফ ডেটাবেসের মধ্যে দ্রুত এবং কার্যকর ডেটা অনুসন্ধান করতে সহায়ক।